<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');
/*
  Author : Novi Setiani
 */

include 'page/abstractPage.php';

//1. Nama kelas samakan dengan nama file - WAJIB extend AbstractPage
class ServerMengundangPengguna extends AbstractPage {

    private $action = ''; //keterangan aksi dari button submit submit (isi sendiri dengan string)
    private $message = ''; //keterangan pesan berhasil atau sukses
    private $data = array();

    public function ServerMengundangPengguna() {
        parent::__construct();
        //$this->checkLogin();
        $this->load->model('Peserta', 'peserta');
        $this->load->model('Notifikasikegiatan','notifikasi');
        $this->load->model('Kegiatan','kegiatan');
         // Session Pengguna dan Redirect jika tidak ada privilege
       
         $sess_user = $this->session->userdata('pengguna');
        if (!array_intersect($sess_user['role'], array("TU","Mahasiswa","Dosen"))) {
            redirect('/');
        }
    }

    //Fungsi untuk mencari nama peserta yang digunakan pada autocomplete
    public function ajaxNamaPeserta($activity_id) {
        $this->load->model('Pengguna', 'pengguna');
        $arr = $this->pengguna->cari($this->input->get('q'),$activity_id);
        $this->output->set_content_type('application/json')->set_output(json_encode($arr));
        //echo json_encode($arr);
    }

    //Fungsi untuk menambah peserta menggunakan ajax
    //Param activity_id dan user_id
    public function ajaxTambahPeserta($activity_id, $user_id) {
        echo $this->peserta->add($activity_id, $user_id);
        $this->notifikasi->add($activity_id,$user_id,0);
    }

    public function ajaxHapusPeserta($activity_id, $user_id) {
        $this->notifikasi->add($activity_id,$user_id,1);
        $this->peserta->delete($activity_id, $user_id);
        redirect('/ServerMengundangPengguna/add/' . $activity_id);
    }

    public function view($activity_id, $user_id) {
        $pengguna = $this->peserta->getPeserta($activity_id, $user_id);
        $this->load->view('MengundangPengguna/ViewPeserta', array('pengguna' => $pengguna));
    }

    public function add($activity_id) {
        $this->action = "add";
        $this->data = array('activity_id' => $activity_id, 'peserta' => $this->peserta->getPeserta($activity_id),'detail' =>$this->kegiatan->getKegiatan($activity_id));
        $this->index();
    }

    //contoh fungsi yang akan dipanggil oleh suatu aksi pada viewer
    public function contoh() {
        //2. wajib mengisi action
        $this->action = 'contoh';

        //3.kode eksekusi script php
        //4. wajib panggil fungsi ini di setiap akhir fungsi, kalau
        $this->index();
    }
    function notifikasiKegiatan($userID){
        $this->action = "notifikasi";
        
        $this->data = array('notifikasi' => $this->notifikasi->getUnreaded($userID));
        $this->notifikasi->setStatus($userID);
        $this->index();
    }

    function detailNotifikasi($activityID){
        $this->action = "detailNotifikasi";
        $this->data = array('detail' => $this->kegiatan->getKegiatan($activityID),'peserta' => $this->peserta->getPesertaByActivity($activityID));
        $this->index();
    }
    //5. Wajib Override method ini
    function _buildContent() {
        if ($this->action == 'add') {
            $this->load->view('MengundangPengguna/TambahPeserta', $this->data);
        }
        else if ($this->action == "notifikasi"){
            $this->load->view('MengundangPengguna/NotifikasiKegiatan',$this->data);
        }
        else if ($this->action == "detailNotifikasi"){
            $this->load->view('MengundangPengguna/DetailNotifikasi',$this->data);
        }
        //6. Tuliskan setiap kondisi action. Setiap action hendaknya mengirimkan data untuk halaman yang akan di-build
        //Contoh :
        //if ($this->action=='contoh')
        //{
        //  /*data yang dikirimkan*/
        //  $data= array(
        //      'variabel1'=>'nilai1'
        //      'variabel2'=>'nilai2'
        //  )
        //  $this->load->view("HALAMAN_YANG_AKAN_DILOAD SEBAGAI_VIEWER",$data);
        //}
    }

}
